* gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized
authorJan D. <jan.h.d@swipnet.se>
Sat, 24 Aug 2013 08:43:36 +0000 (10:43 +0200)
committerJan D. <jan.h.d@swipnet.se>
Sat, 24 Aug 2013 08:43:36 +0000 (10:43 +0200)
or fullscreen.

src/ChangeLog
src/gtkutil.c

index fe9940296099636ce647953a9cff4c2c8d32940c..cc7980fb8e0173a269ff377e705ca9c5b130ec38 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-24  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized
+       or fullscreen (Bug#14627).
+
 2013-08-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        System-dependent integer overflow fixes.
index 7e304d417d8fc2049106f71023a040b6e9b8d1dc..8e255ac4bfb7d76bb2475c967261821e8d1f2707 100644 (file)
@@ -1341,6 +1341,7 @@ x_wm_set_size_hint (struct frame *f, long int flags, bool user_position)
   int base_width, base_height;
   int min_rows = 0, min_cols = 0;
   int win_gravity = f->win_gravity;
+  Lisp_Object fs_state, frame;
 
   /* Don't set size hints during initialization; that apparently leads
      to a race condition.  See the thread at
@@ -1348,6 +1349,16 @@ x_wm_set_size_hint (struct frame *f, long int flags, bool user_position)
   if (NILP (Vafter_init_time) || !FRAME_GTK_OUTER_WIDGET (f))
     return;
 
+  XSETFRAME (frame, f);
+  fs_state = Fframe_parameter (frame, Qfullscreen);
+  if (EQ (fs_state, Qmaximized) || EQ (fs_state, Qfullboth))
+    {
+      /* Don't set hints when maximized or fullscreen.  Apparently KWin and
+         Gtk3 don't get along and the frame shrinks (!).
+      */
+      return;
+    }
+
   if (flags)
     {
       memset (&size_hints, 0, sizeof (size_hints));